لینکها مثل میانبرهای ویندوز هستند، اما قدرتمندتر! دو نوع اصلی دارند: لینک نرم (Soft Link) و لینک سخت (Hard Link). بیایید ببینیم هرکدوم چطور کار میکنند.
لینک (Link) یک ارجاع به یک فایل یا دایرکتوری است. با استفاده از لینکها میتوانید:
Inode یک ساختار داده در سیستم فایل است که اطلاعات مربوط به یک فایل را ذخیره میکند (به جز نام فایل). هر فایل در لینوکس یک Inode منحصربهفرد دارد.
در لینوکس، نام فایل فقط یک برچسب برای Inode است. یک فایل میتواند چندین نام داشته باشد (Hard Link) که همه به یک Inode اشاره میکنند.
فرض کنید فایل OriginalFile.txt با Inode شماره 1234 دارید. یک Hard Link به نام HardLinkFile.txt ایجاد میکنید. هر دو نام به یک Inode (1234) اشاره میکنند.
OriginalFile.txt (Inode: 1234)HardLinkFile.txt (Inode: 1234) → Hard LinkSoftLinkFile.txt (Inode: 5678) → Soft Link (به نام فایل اشاره میکند، نه Inode)ln
برای ایجاد لینک از دستور ln (مخفف Link) استفاده میشود.
توضیح: یک Hard Link به نام HardLinkFile.txt برای فایل OriginalFile.txt ایجاد میکند.
توضیح: با گزینه -s یک Soft Link ایجاد میشود.
ls -l:
l شروع میشود و با یک فلش به فایل اصلی اشاره میکند.
با استفاده از دستور readlink میتوانید مسیر فایل اصلی یک Soft Link را پیدا کنید.
توضیح: readlink -f مسیر کامل فایل اصلی (مقصد) را نمایش میدهد.
توضیح: readlink بدون گزینه، فقط مسیر نسبی مقصد را نمایش میدهد.
برای حذف لینکها، از دستور rm استفاده کنید. (همانند حذف یک فایل معمولی)
توضیح: Soft Link را حذف میکند، اما فایل اصلی تغییری نمیکند.
حذف یک Hard Link، فقط یکی از نامهای فایل را حذف میکند. تا زمانی که حداقل یک Hard Link دیگر وجود داشته باشد، دادههای فایل از بین نمیروند.
| ویژگی | Hard Link | Soft Link (Symbolic) |
|---|---|---|
| ارجاع به | Inode فایل | نام فایل (Path) |
| Inode | همان Inode فایل اصلی | Inode متفاوت |
| اگر فایل اصلی حذف شود | دادهها باقی میمانند | لینک میشکند (Broken) |
| پشتیبانی از دایرکتوری | ❌ خیر | ✅ بله |
| بین سیستمفایلهای مختلف | ❌ خیر | ✅ بله |
| دستور ایجاد | ln original link |
ln -s original link |
نمایش در ls -l |
مشابه فایل معمولی | با l و فلش → |
test.txt).ls -li (نمایش Inode) تفاوت آنها را مشاهده کنید.readlink -f مسیر یک Soft Link را پیدا کنید.